package regexp;

import java.util.regex.Matcher;
import java.util.regex.Pattern;

/**
 * @author DCSGO
 * @version 1.0
 * 正则表达式快速体验
 */
public class Regexp_ {
    //(1)．传统方法: 使用遍历方式，代码量大，效率不高
    //(2)．正则表达式技术
    public static void main(String[] args) {
        //String content = ReadContent.getContent();
        String content = "公有地址\n" +
                "公有地址（Public address）由Inter NIC（Internet Network Information Center因特网信息中心）负责。这些IP地址分配给注册并向Inter NIC提出申请的组织机构。通过它直接访问因特网。\n" +
                "私有地址\n" +
                "私有地址（Private address）属于非注册地址，专门为组织机构内部使用。\n" +
                "以下列出留用的内部私有地址\n" +
                "A类 10.0.0.0--10.255.255.255\n" +
                "B类 172.16.0.0--172.31.255.255\n" +
                "C类 192.168.0.0--192.168.255.255";
        //1．先创建一个Pattern对象﹐模式对象，可以理解成就是一个正则表达式对象
        //Pattern pattern = Pattern.compile("[a-zA-Z]+");//所有单词
        //Pattern pattern = Pattern.compile("[0-9]+");//所有数字
        //Pattern pattern = Pattern.compile("([a-zA-Z]+)|([0-9]+)");//所有单词和数字
        Pattern pattern = Pattern.compile("\\d+\\.\\d+\\.\\d+\\.+\\d+");

        //2．创建一个匹配器对象
        //理解:就是 matcher 匹配器按照 pattern(模式/样式)，到 content 文本中去匹配
        Matcher matcher = pattern.matcher(content);
        int cnt = 0;
        //3.循环匹配
        while (matcher.find()) {//找到就返回true，否则就返回false
            //匹配内容，文本，放到 matcher.group(0)
            System.out.println((++cnt) + "\t" + matcher.group(0));
            //System.out.println((++cnt) + "\t" + matcher.group(1));
        }
        /*
         * 1	10.0.0.0
         * 2	10.255.255.255
         * 3	172.16.0.0
         * 4	172.31.255.255
         * 5	192.168.0.0
         * 6	192.168.255.255
         *
         * 进程已结束，退出代码为 0
         */
    }
}
